#ifndef SWEGL_TEXTURE_STAGE_H
#define SWEGL_TEXTURE_STAGE_H

#include "swegl/common.h"

namespace swegl
{

class TextureStage
{
public:
	enum Argument
	{
		Texture,
		Diffuse,
		Specular,
		Constant,
		TextureFactor,
		Temp,
		Current,
	};
	enum Operation
	{
		Disabled,
		Modulate,
		Modulate2X,
		Modulate4X,
		Add,
		AddSigned,
		AddSigned2X,
		Substract,
		AddSmooth,
	};

	TextureStage();

	uint texCoordIndex;
	Argument m_colorArg1;
	Argument m_colorArg2;
	Operation m_colorOp;
};

inline TextureStage::TextureStage() : texCoordIndex(0), m_colorArg1(Texture), m_colorArg2(Texture), m_colorOp(Disabled)
{
}

}

#endif 
